package br.ucb.servlets.livro;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.ucb.dao.LivroDAO;
import br.ucb.entidade.Livro;
import br.ucb.service.LivroService;
import br.ucb.service.impl.LivroServiceImpl;
import br.ucb.servlets.AbstractPapirosServlet;
import br.ucb.servlets.util.PapirosUtil;

@SuppressWarnings("serial")
public class CadastrarLivroServlet_1 extends AbstractPapirosServlet<Livro, LivroService, LivroDAO>{

	@Override
	protected void processaRequisicao(HttpServletRequest req,
			HttpServletResponse resp)throws ServletException,IOException {
		
		setEntidadeService(new LivroServiceImpl());
		
		if(!PapirosUtil.isUserLogged(req)){
			forward(req, resp, "/jsp/seguranca/login.jsp");
		}else{
			Livro livro=getDadosFormulario(req, resp);
			
			if(livro!=null){
				setEntidade(livro);
				if(insert(getEntidade(),req)){
					forward(req, resp, "/jsp/restrito/incluirLivro.jsp");
				}else{
					forward(req, resp, "/jsp/restrito/incluirLivro.jsp");
				}
			}
		}
	}
	
	private Livro getDadosFormulario(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		Livro livro=null;
		
		try{
			livro = new Livro(Integer.parseInt("0"), req.getParameter("txtTitulo"), req.getParameter("txtEditora"), req.getParameter("txtGenero"), req.getParameter("txtAno"),
				req.getParameter("txtCorredor"), req.getParameter("txtEstante"), req.getParameter("txtPrateleira"), 
				Integer.parseInt(req.getParameter("txtQtdeDisponivel")));
		}catch (NumberFormatException e) {
			setMensagem("Valor inv�lido para qtde dispon�vel", req);
			forward(req, resp, "/jsp/livro/incluirLivro.jsp");
		}
		
		return livro;	
	}	
	
}
